<!DOCTYPE html>
<html lang="ja">

<head>
  <meta charset="utf-8">
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <meta http-equiv="Content-Style-Type" content="text/css">
  <script src='../bbs.js'></script>

  <!-- Global site tag (gtag.js) - Google Analytics -->
  <script async src="https://www.googletagmanager.com/gtag/js?id=UA-120820034-1"></script>

  <link href="../bbs.css" type="text/css" rel="stylesheet">
  <link rel="shortcut icon" href="/favicon.ico">
  <title>Commit報告:(Chg) ファイル保存時に文字情報が失われる警告を表示 | サクラエディタ過去ログ</title>
</head>
<body>
<ul class="side">
        <a href="./" class="toindex">◀Unicode版開発トップへ</a>
        <li><div class="list-title">
    <span class="no">391</span>
    <a class="thread-title" href="391.html#391">Commit報告:(Chg) ファイル保存時に文字情報が失われる警告を表示</a></div>
    <ul><li><div class="list-title">
    <span class="no">394</span>
    <a class="thread-title" href="391.html#394">Re:Commit報告:(Chg) ファイル保存時に文字情報が失われる警告を表示</a></div>
    <ul><li><div class="list-title">
    <span class="no">395</span>
    <a class="thread-title" href="391.html#395">Re2:Commit報告:(Chg) ファイル保存時に文字情報が失われる警告を表示</a></div>
    </li></ul></li><li><div class="list-title">
    <span class="no">396</span>
    <a class="thread-title" href="391.html#396">Re:Commit報告:(Chg) ファイル保存時に文字情報が失われる警告を表示</a></div>
    <ul><li><div class="list-title">
    <span class="no">412</span>
    <a class="thread-title" href="391.html#412">Re2:Commit報告:(Chg) ファイル保存時に文字情報が失われる警告を表示</a></div>
    <ul><li><div class="list-title">
    <span class="no">413</span>
    <a class="thread-title" href="391.html#413">Re3:Commit報告:(Chg) ファイル保存時に文字情報が失われる警告を表示</a></div>
    <ul><li><div class="list-title">
    <span class="no">415</span>
    <a class="thread-title" href="391.html#415">Re4:Commit報告:(Chg) ファイル保存時に文字情報が失われる警告を表示</a></div>
    <ul><li><div class="list-title">
    <span class="no">426</span>
    <a class="thread-title" href="391.html#426">Re5:Commit報告:(Chg) ファイル保存時に文字情報が失われる警告を表示</a></div>
    <ul><li><div class="list-title">
    <span class="no">428</span>
    <a class="thread-title" href="391.html#428">Re6:Commit報告:(Chg) ファイル保存時に文字情報が失われる警告を表示</a></div>
    <ul><li><div class="list-title">
    <span class="no">430</span>
    <a class="thread-title" href="391.html#430">Re7:Commit報告:(Chg) ファイル保存時に文字情報が失われる警告を表示</a></div>
    <ul><li><div class="list-title">
    <span class="no">431</span>
    <a class="thread-title" href="391.html#431">Re8:Commit報告:(Chg) ファイル保存時に文字情報が失われる警告を表示</a></div>
    <ul><li><div class="list-title">
    <span class="no">441</span>
    <a class="thread-title" href="391.html#441">Re9:Commit報告:(Chg) ファイル保存時に文字情報が失われる警告を表示</a></div>
    </li></ul></li><li><div class="list-title">
    <span class="no">434</span>
    <a class="thread-title" href="391.html#434">Re8:Commit報告:(Chg) ファイル保存時に文字情報が失われる警告を表示</a></div>
    </li><li><div class="list-title">
    <span class="no">1101</span>
    <a class="thread-title" href="391.html#1101">Re8:Commit報告:(Chg) ファイル保存時に文字情報が失われる警告を表示</a></div>
    </li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li>
    </ul><ul class="main"><li><section><h1 id=391>
    <span class="no">[391]</span>
    <a class="thread-title" href="#391">Commit報告:(Chg) ファイル保存時に文字情報が失われる警告を表示</a>
    <span class="author">kobake</span>
    <time datetime="2008-05-10T20:10:38">2008年05月10日 20:10</time></h1>
    <div class="body">リビジョン：<br>　rev1334<br><br>変更種別：<br>　機能追加。<br><br>内容：<br>　ファイル保存時に文字情報が失われる場合は、その確認メッセージを出すようにしました。<br><br>前々からこの機能は入れたつもりでしたが、ちゃんと働いていなかったので、<br>働くように修正しました。<br></div></section>
    <ul><li><section><h1 id=394>
    <span class="no">[394]</span>
    <a class="thread-title" href="#394">Re:Commit報告:(Chg) ファイル保存時に文字情報が失われる警告を表示</a>
    <span class="author">Uchi</span>
    <time datetime="2008-05-11T07:16:11">2008年05月11日 07:16</time></h1>
    <div class="body">▼ kobakeさん<br>&gt; リビジョン：<br>&gt; 　rev1334<br>&gt; <br>&gt; 変更種別：<br>&gt; 　機能追加。<br>&gt; <br>&gt; 内容：<br>&gt; 　ファイル保存時に文字情報が失われる場合は、その確認メッセージを出すようにしました。<br>&gt; <br>&gt; 前々からこの機能は入れたつもりでしたが、ちゃんと働いていなかったので、<br>&gt; 働くように修正しました。<br>&gt;&gt; 4) 『共通設定』の『ファイル』の『ファイルの排他制御』で『他プロセスから読み書きを禁止する』を選択し、『バックアップ』の『保存時にバックアップを作成する』にすると<br>&gt;&gt;     上書き保存時、「バックアップの作成に失敗しました.元ファイルへの上書きを継続しますか.」のメッセージが表示される。<br>&gt;&gt; 1) Grep で『ファイル毎』を指定した結果の『ファイル名』（行ではなく）をダブルクリックすると、ディレクトリ指定部が重複したファイルを開こうとし、<br>&gt;&gt;         上記ファイル名は不正です。…<br>&gt;&gt;     のエラーメッセージが表示されます。<br>&gt;&gt;     （行のダブルクリックはOKです）<br>以上３点修正されていることを確認しました。<br><br>で、要望なのですが、読み込み時に文字情報が失われる場合もメッセージを出してほしいです。<br>もっといいのは不正なシーケンスがあっても書き込み時に戻してくれるのが良いのですけれど</div></section>
    <ul><li><section><h1 id=395>
    <span class="no">[395]</span>
    <a class="thread-title" href="#395">Re2:Commit報告:(Chg) ファイル保存時に文字情報が失われる警告を表示</a>
    <span class="author">kobake</span>
    <time datetime="2008-05-11T15:29:04">2008年05月11日 15:29</time></h1>
    <div class="body">ご確認ありがとうございます。<br><br>▼ Uchiさん<br>&gt; で、要望なのですが、読み込み時に文字情報が失われる場合もメッセージを出してほしいです。<br><br>統合までに実装予定です。<br>（文字コードにあんまり詳しくないので、皆さんの力をお借りするかもしれません）<br><br>&gt; もっといいのは不正なシーケンスがあっても書き込み時に戻してくれるのが良いのですけれど<br><br>もし自分が作業するとしたら、統合後の余裕のあるときに実装するかもしれません。<br><br><br>＃以下、設計に関するぼやき＃<br><br>Uchiさんが提案された後者の機能（以下、機能B)を実装するためには、<br>文書に付加データを付ける形で実装する（ほうが、自分的には実装が楽だと思う）形になると思います。<br><br>今の時点で、文書データ内に付加データを付ける場面が<br>・ブックマーク情報<br>・DIFF情報<br>などで、あります。<br><br>付加データを文字通り「付加的に」付けることができるフレームワークができていれば良かったのですが、今の時点では、まだ構造のコアな部分に、付加情報が食い込んでいる状態です。新たに付加情報を付けようとする場合、上で挙げた例と同様に、コアな部分に新データを食い込ませることになります。結果、設計は汚れます。<br><br>上のような事情があるので、機能Bの実装作業は、該当フレームワークの構築を済ませてから、になるかと思います（該当フレームワークの構築は、ときどき進めてはいます）。<br>もちろん、該当フレームワークを使わない、別の形の美しい実装はありますが、いちいち機能毎に頭を捻るよりは、手軽に利用できるフレームワークがあって、それを利用できるなら利用したほうが、手間的にも、安定度的にも、レビュー観点的にも、保守性的にも、好ましい、と自分は考えています。<br></div></section>
    </li></ul></li><li><section><h1 id=396>
    <span class="no">[396]</span>
    <a class="thread-title" href="#396">Re:Commit報告:(Chg) ファイル保存時に文字情報が失われる警告を表示</a>
    <span class="author">kobake</span>
    <time datetime="2008-05-11T15:55:08">2008年05月11日 15:55</time></h1>
    <div class="body">&gt; 内容：<br>&gt; 　ファイル保存時に文字情報が失われる場合は、その確認メッセージを出すようにしました。<br>&gt; <br>&gt; 前々からこの機能は入れたつもりでしたが、ちゃんと働いていなかったので、<br>&gt; 働くように修正しました。<br><br>すみません、上記機能ですが、不足がありました。SJIS保存時しか対応してなかったです…。<br><br>保存時の文字コード変換は各種文字コードクラス (CShiftJisなどの、CCodeBase派生クラス) の UnicodeToCode() で行っているのですが、文字コード変換に失敗した場合は RESULT_LOSESOME を返すのが正しいです。<br>で、その RESULT_LOSESOME を返す、という実装が CShiftJis でしか行ってなかったです…。<br><br>申し訳ありませんが、以下のクラスについて、UnicodeToCode 戻り値の対応ができる方がおりましたら、作業お願いできますでしょうか。（自分も時間あるときに作業しますが）<br>※対応できたら、チェック (□→■) を入れてください。<br>□CEuc<br>□CJis<br>■CShiftJis (対応済み)<br>■CUnicode (文字情報は失われようが無いので、対応済み扱い)<br>■CUnicodeBe (文字情報は失われようが無いので、対応済み扱い)<br>□CUtf7<br>□CUtf8 (文字情報失われない気がしましたが、詳しく知らないので、未対応扱い)<br></div></section>
    <ul><li><section><h1 id=412>
    <span class="no">[412]</span>
    <a class="thread-title" href="#412">Re2:Commit報告:(Chg) ファイル保存時に文字情報が失われる警告を表示</a>
    <span class="author">ラスティブ</span>
    <time datetime="2008-05-18T20:53:59">2008年05月18日 20:53</time></h1>
    <div class="body">リビジョン：<br>　rev1345に対して<br><br>内容：<br>　EUC及びSJISファイル読み込み時に文字情報が失われる場合は<br>その確認メッセージを出すようなパッチを作成しました。<br><br>■CEuc (今回対応)<br>□CJis<br>■CShiftJis (今回対応)<br>■CUnicode<br>■CUnicodeBe<br>□CUtf7<br>□CUtf8<br><br>CCodeBase に変更を入れてしまっていて、不安を感じています。<br>&gt;&gt;395 の内容とすり合わせながらレビューを頂けませんでしょうか…。<br></div></section>
    <ul><li><section><h1 id=413>
    <span class="no">[413]</span>
    <a class="thread-title" href="#413">Re3:Commit報告:(Chg) ファイル保存時に文字情報が失われる警告を表示</a>
    <span class="author">ラスティブ</span>
    <time datetime="2008-05-18T20:58:12">2008年05月18日 20:58</time></h1>
    <div class="body">▼ ラスティブさん<br>&gt; リビジョン：<br>&gt; 　rev1345に対して<br>&gt; <br>&gt; 内容：<br>&gt; 　EUC及びSJISファイル読み込み時に文字情報が失われる場合は<br>&gt; その確認メッセージを出すようなパッチを作成しました。<br>&gt; <br>すみませんアップロードした場所を書き忘れておりました（疲<br>PatchUnicode #1966418<br>「EUCまたはSJISファイル読み込み時に文字情報が失われたことを検知」<br><br>宜しくお願いいたします。</div></section>
    <ul><li><section><h1 id=415>
    <span class="no">[415]</span>
    <a class="thread-title" href="#415">Re4:Commit報告:(Chg) ファイル保存時に文字情報が失われる警告を表示</a>
    <span class="author">Uchi</span>
    <time datetime="2008-05-19T20:59:24">2008年05月19日 20:59</time></h1>
    <div class="body">▼ ラスティブさん<br>&gt; リビジョン：<br>&gt; 　rev1345に対して<br>&gt; <br>&gt; 内容：<br>&gt; 　EUC及びSJISファイル読み込み時に文字情報が失われる場合は<br>&gt; その確認メッセージを出すようなパッチを作成しました。<br><br>取り急ぎ、実行してのレビューのみさせていただきます。<br>&gt; <br>&gt; ■CEuc (今回対応)<br>&#9;×&#9;リーディングバイトと次のバイトの組み合わせの問題はチェックできているが<br>&#9;&#9;JISで未定義の箇所が×<br>&gt; □CJis<br>&gt; ■CShiftJis (今回対応)<br>&#9;×&#9;EUCと同じ<br>&gt; ■CUnicode<br>&#9;×&#9;奇数サイズのファイルが壊れる<br>&gt; ■CUnicodeBe<br>&#9;×&#9;同上<br>&gt; □CUtf7<br>&gt; □CUtf8<br>私もコードを書こうとしたのですが、上記のところがきれいに書けず、挫折していました。<br><br>JIS、UTF7に関しては、仕様上逆変換が一意に定まらないので、シーケンスが正しいかのチェックのみになると思います。<br><br>以上参考にしてください。</div></section>
    <ul><li><section><h1 id=426>
    <span class="no">[426]</span>
    <a class="thread-title" href="#426">Re5:Commit報告:(Chg) ファイル保存時に文字情報が失われる警告を表示</a>
    <span class="author">ラスティブ</span>
    <time datetime="2008-05-22T23:20:02">2008年05月22日 23:20</time></h1>
    <div class="body">アップしました。<br>PatchUnicode #1966418<br>「ファイル読み込み時に文字情報が失われたことを検知」<br><br>■CEuc<br>&#9;&gt; リーディングバイトと次のバイトの組み合わせの問題は<br>&#9;&gt; チェックできているが、JISで未定義の箇所が×<br>&#9;変換関数の戻り値が確認できていなかったので、<br>&#9;確認してエラー処理をさせるようにしました。<br>□CJis<br>■CShiftJis<br>□CUnicode&#9;（奇数サイズのファイルが壊れる）<br>□CUnicodeBe&#9;（同上）<br>■CUtf7<br>■CUtf8<br>&#9;新たに作り足しました。<br>&#9;UTF-7の書き込み関数の方も整理し書き直しました。<br><br>原作者様のものを元にして、<br>Base64エンコーダー／デコーダーの実行部分を<br>CBase64.h, CBase64.cpp に備え付けました。一応報告です。<br><br>UTF-7 の読み込みエラーでは、紆余曲折の結果、<br>'.'と'?'ではなく、置換文字'?'とべた書きを使う事にしました…。<br><br>「JISで未定義の箇所が×」のところのレビューを、<br>宜しくお願いいたします。</div></section>
    <ul><li><section><h1 id=428>
    <span class="no">[428]</span>
    <a class="thread-title" href="#428">Re6:Commit報告:(Chg) ファイル保存時に文字情報が失われる警告を表示</a>
    <span class="author">Uchi</span>
    <time datetime="2008-05-24T00:03:24">2008年05月24日 00:03</time></h1>
    <div class="body">▼ ラスティブさん<br>&gt; ■CEuc<br>&gt; &#9;&gt; リーディングバイトと次のバイトの組み合わせの問題は<br>&gt; &#9;&gt; チェックできているが、JISで未定義の箇所が×<br>&gt; &#9;変換関数の戻り値が確認できていなかったので、<br>&gt; &#9;確認してエラー処理をさせるようにしました。<br>&#9;×<br>&gt; □CJis<br>&gt; ■CShiftJis<br>&#9;×<br>&gt; □CUnicode&#9;（奇数サイズのファイルが壊れる）<br>&gt; □CUnicodeBe&#9;（同上）<br>&gt; ■CUtf7<br>&#9;○?<br>&gt; ■CUtf8<br>&#9;エラーチェックは○<br>&#9;CESU-8（サロゲートペアを一連のコード(4byte)では無く２文字(3Byte×2)として扱うコード）が読めなくなりました。<br><br>CEuc、CShiftJisのJISで未定義の箇所をチェックしているところがソース上見当たらないのですが？<br><br>取り急ぎチェックしてみました。<br>参考にしてください。</div></section>
    <ul><li><section><h1 id=430>
    <span class="no">[430]</span>
    <a class="thread-title" href="#430">Re7:Commit報告:(Chg) ファイル保存時に文字情報が失われる警告を表示</a>
    <span class="author">ラスティブ</span>
    <time datetime="2008-05-24T19:50:30">2008年05月24日 19:50</time></h1>
    <div class="body">▼Uchiさん<br><br>　毎度毎度レビューありがとうございますっ<br><br>&gt; CESU-8（サロゲートペアを一連のコード(4byte)では無く<br>&gt; ２文字(3Byte×2)として扱うコード）が読めなくなりました。<br><br>　CESU-8とは、初耳です…<br>調べてみましたが、UTF-8とCESU-8は別のコード体系として<br>取り扱った方が安全だとも思います。<br>しかし検査基準を緩くする事で簡単に解消でそうですし…<br>そうした方がよろしいでしょうか？<br><br>&gt; CEuc、CShiftJisのJISで未定義の箇所をチェックしている<br>&gt; ところがソース上見当たらないのですが？<br><br>　変換処理最終のMultiByteToWideCharの<br>エラーを拾うだけで未定義文字の箇所の変換チェックは<br>大丈夫だろうと軽く考えて、エラーチェックを施したのですが…<br><br>JIS未定義の箇所とは、機種依存文字などのことでしょうか？</div></section>
    <ul><li><section><h1 id=431>
    <span class="no">[431]</span>
    <a class="thread-title" href="#431">Re8:Commit報告:(Chg) ファイル保存時に文字情報が失われる警告を表示</a>
    <span class="author">ラスティブ</span>
    <time datetime="2008-05-24T20:48:10">2008年05月24日 20:48</time></h1>
    <div class="body">▼ ラスティブさん<br>&gt; ▼Uchiさん<br>&gt; &gt; CEuc、CShiftJisのJISで未定義の箇所をチェックしている<br>&gt; &gt; ところがソース上見当たらないのですが？<br>&gt; <br>&gt; 　変換処理最終のMultiByteToWideCharの<br>&gt; エラーを拾うだけで未定義文字の箇所の変換チェックは<br>&gt; 大丈夫だろうと軽く考えて、エラーチェックを施したのですが…<br><br>#include &lt;stdio.h&gt;<br>#include &lt;windows.h&gt;<br>const char test_data[] = { 0x81, 0xae };<br>int main()<br>{<br>  wchar_t result[16];<br>  int ret = MultiByteToWideChar(<br>    932, MB_ERROR_INVALID_CHARS, test_data, 2, result, 16 );<br>  // int ret = MultiByteToWideChar(<br>    932, 0, test_data, 2, result, 16 );<br>  printf( "ret=%d", ret );<br>  return 0;<br>}<br><br>　試してみました。機種依存文字などのことじゃないですねorz.<br>　MB_ERROR_INVALID_CHARS フラグはMSDNによると<br>Win2000 SP4, WinXP and later で…という問題ですね。<br><br>　出来るかどうかはともかく（＾＾；<br>了解しました。</div></section>
    <ul><li><section><h1 id=441>
    <span class="no">[441]</span>
    <a class="thread-title" href="#441">Re9:Commit報告:(Chg) ファイル保存時に文字情報が失われる警告を表示</a>
    <span class="author">ラスティブ</span>
    <time datetime="2008-05-25T15:21:12">2008年05月25日 15:21</time></h1>
    <div class="body">▼ ラスティブさん<br>&gt; ▼ ラスティブさん<br>&gt; ・・・・<br>&gt;     932, MB_ERROR_INVALID_CHARS, test_data, 2, result, 16 );<br>&gt; ・・・・<br>&gt; 　MB_ERROR_INVALID_CHARS フラグはMSDNによると<br><br>MB_ERROR_INVALID_CHARS のところは、<br>MB_ERR_INVALID_CHARS の誤りでした。<br>この記事を持って訂正します。<br><br>連続投稿すみません。</div></section>
    </li></ul></li><li><section><h1 id=434>
    <span class="no">[434]</span>
    <a class="thread-title" href="#434">Re8:Commit報告:(Chg) ファイル保存時に文字情報が失われる警告を表示</a>
    <span class="author">Uchi</span>
    <time datetime="2008-05-25T01:35:42">2008年05月25日 01:35</time></h1>
    <div class="body">▼ ラスティブさん<br>&gt; 　CESU-8とは、初耳です…<br>&gt; 調べてみましたが、UTF-8とCESU-8は別のコード体系として<br>&gt; 取り扱った方が安全だとも思います。<br>&gt; しかし検査基準を緩くする事で簡単に解消でそうですし…<br>&gt; そうした方がよろしいでしょうか？<br>CESU-8はOracleが勝手に作った文字コードなわけですが、相手が相手だけに、また対応のしやすさでそれなりに（UTF-8として）流通しているようです。<br>パッチ前のバージョンでは読めていたので一応あげておきました。<br>WinXpのメモ帳でも読めるようです。<br>私の考えでは、読み込んでエラーメッセージを出すあたりが妥当かと思います。<br></div></section>
    </li><li><section><h1 id=1101>
    <span class="no">[1101]</span>
    <a class="thread-title" href="#1101">Re8:Commit報告:(Chg) ファイル保存時に文字情報が失われる警告を表示</a>
    <span class="author">gigreeswery</span>
    <time datetime="2010-01-11T05:37:24">2010年01月11日 05:37</time></h1>
    <div class="body">55</div></section>
    </li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></body></html>